Conversation
📝 WalkthroughWalkthroughThe libp2p host now registers QUIC instead of TCP, uses QUIC-over-UDP listen addresses, and builds QUIC-specific advertised addresses. Peer address prediction and startup smoke-test coverage also use the QUIC configuration. Third-party attribution links reference updated dependency versions. Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant NewNode
participant AddrsFactory
participant QUICTransport
NewNode->>AddrsFactory: Build QUIC advertised addresses
NewNode->>QUICTransport: Register QUIC transport
NewNode->>NewNode: Start node
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pkg/service/mum_p2p/service.go`:
- Line 99: Update the libp2p host configuration around quic.NewTransport to bind
UDP/QUIC listen addresses using /udp/<port>/quic-v1 instead of only TCP
addresses, or ensure TCP is also advertised consistently. Add a focused test
verifying the host’s advertised addresses match the configured bound transport,
covering the QUIC endpoint scheme and transport.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: getoptimum/coderabbit/.coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 4333b1a9-ac00-4e4a-9a64-7db5286e0c5a
⛔ Files ignored due to path filters (2)
go.modis excluded by none and included by nonego.sumis excluded by!**/*.sumand included by none
📒 Files selected for processing (2)
pkg/service/bootstrapper/service.gopkg/service/mum_p2p/service.go
There was a problem hiding this comment.
Pull request overview
This PR updates the mump2p networking layer to listen/advertise QUIC v1 multiaddrs (UDP) instead of TCP, and bumps/refreshes dependency metadata (Go modules, SBOM, and third-party notices) accordingly.
Changes:
- Switch
mum_p2pnode transport from TCP to QUIC (/udp/<port>/quic-v1) and update advertised address construction. - Update bootstrapper address prediction to match the QUIC-advertised address scheme.
- Bump several dependencies and refresh SBOM / third-party notice references to match.
Reviewed changes
Copilot reviewed 5 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/service/mum_p2p/service.go | Switches the mump2p libp2p host to QUIC listen addrs/transport and QUIC advertised addrs. |
| pkg/service/bootstrapper/service.go | Updates predicted peer.AddrInfo to advertise QUIC multiaddrs. |
| go.mod | Bumps optimum-common and Prometheus-related dependencies (and a few indirects). |
| go.sum | Adds checksums for bumped module versions. |
| docs/sbom.json | Refreshes SBOM entries/hashes/refs to reflect updated dependencies. |
| THIRD-PARTY-NOTICES.md | Updates license link versions for a subset of dependencies. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| cachedAddrs := commonnet.MustBuildAdvertisedQUICAddresses(log, publicIPV4, publicIPV6, cfg.ListenPort) | ||
|
|
||
| libP2POpts := []libp2p.Option{ | ||
| libp2p.ConnectionManager(cn), | ||
| libp2p.ListenAddrStrings( | ||
| fmt.Sprintf("/ip4/0.0.0.0/tcp/%d", cfg.ListenPort), | ||
| fmt.Sprintf("/ip6/::/tcp/%d", cfg.ListenPort), | ||
| fmt.Sprintf("/ip4/0.0.0.0/udp/%d/quic-v1", cfg.ListenPort), | ||
| fmt.Sprintf("/ip6/::/udp/%d/quic-v1", cfg.ListenPort), | ||
| ), | ||
| libp2p.Ping(false), // Disable Ping Service. | ||
| libp2p.Transport(tcp.NewTCPTransport), | ||
| libp2p.Transport(quic.NewTransport), | ||
| libp2p.DefaultMuxers, | ||
| libp2p.Muxer("/mplex/6.7.0", mplex.DefaultTransport), |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@pkg/service/mum_p2p/node_test.go`:
- Line 23: Replace commontest.GetFreePortT in the test configuration passed to
NewNode with a UDP/QUIC-safe port allocator that reserves the port before node
creation. Preserve the existing test setup and ensure the selected port is safe
for both IPv4 and IPv6 UDP binding.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: getoptimum/coderabbit/.coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 8e03d85d-6c3f-426f-87e8-421ac9118101
⛔ Files ignored due to path filters (1)
go.sumis excluded by!**/*.sumand included by none
📒 Files selected for processing (2)
pkg/service/mum_p2p/node_test.gopkg/service/mum_p2p/service.go
Summary by CodeRabbit